//定义store
import { defineStore } from 'pinia'
import { ref } from 'vue';

/**
 * 定义一个名为token的store，用于管理令牌（token）
 * 使用Vuex的defineStore函数创建store，可以使得状态管理更加集中和可维护
 * 
 * @param {string} storeName - store的名称，用于在全局访问时命名
 * @param {function} fn - 一个返回对象的函数，包含state、actions和getters
 * @returns {Object} 返回一个store对象，包含token状态、设置token和移除token的方法
 */
export const useTokenStore = defineStore('token', ()=>{

    // 初始化token状态为一个空字符串
    const token = ref('')


    const setToken = (newToken) => {
        token.value = newToken
    }


    const removeToken = () => {
        token.value = ''
    }

    // 返回包含token状态、设置token和移除token的方法的对象
    return {
        token,
        setToken,
        removeToken
    }      
},
    {
        persist: true
    }
    
)